
<!DOCTYPE html>

<html>
  
<!-- Mirrored from docs.sympy.org/latest/modules/physics/wigner.html by HTTrack Website Copier/3.x [XR&CO'2014], Sat, 15 Jan 2022 03:27:51 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />

    <title>Wigner Symbols &#8212; SymPy 1.9 documentation</title>
    <link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../../_static/default.css" />
    <link rel="stylesheet" type="text/css" href="../../_static/graphviz.css" />
    <link rel="stylesheet" type="text/css" href="../../_static/plot_directive.css" />
    <link rel="stylesheet" type="text/css" href="../../../../live.sympy.org/static/live-core.css" />
    <link rel="stylesheet" type="text/css" href="../../../../live.sympy.org/static/live-autocomplete.css" />
    <link rel="stylesheet" type="text/css" href="../../../../live.sympy.org/static/live-sphinx.css" />
    
    <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
    <script src="../../_static/jquery.js"></script>
    <script src="../../_static/underscore.js"></script>
    <script src="../../_static/doctools.js"></script>
    <script src="../../../../live.sympy.org/static/utilities.js"></script>
    <script src="../../../../live.sympy.org/static/external/classy.js"></script>
    <script src="../../../../live.sympy.org/static/live-core.js"></script>
    <script src="../../../../live.sympy.org/static/live-autocomplete.js"></script>
    <script src="../../../../live.sympy.org/static/live-sphinx.js"></script>
    <script async="async" src="../../../../cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest8331.js?config=TeX-AMS_HTML-full"></script>
    <script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"inlineMath": [["\\(", "\\)"]], "displayMath": [["\\[", "\\]"]]}})</script>
    
    <link rel="shortcut icon" href="../../_static/sympy-notailtext-favicon.ico"/>
    <link href="wigner.html" rel="canonical" />
    
    <link rel="index" title="Index" href="../../genindex.html" />
    <link rel="search" title="Search" href="../../search.html" />
    <link rel="next" title="Unit systems" href="units/index.html" />
    <link rel="prev" title="Second Quantization" href="secondquant.html" /> 
  </head><body>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="../../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="units/index.html" title="Unit systems"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="secondquant.html" title="Second Quantization"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../../index.html">SymPy 1.9 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="../index.html" >SymPy Modules Reference</a> &#187;</li>
          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U">Physics</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="#">Wigner Symbols</a></li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <section id="module-sympy.physics.wigner">
<span id="wigner-symbols"></span><h1>Wigner Symbols<a class="headerlink" href="#module-sympy.physics.wigner" title="Permalink to this headline">¶</a></h1>
<p>Wigner, Clebsch-Gordan, Racah, and Gaunt coefficients</p>
<p>Collection of functions for calculating Wigner 3j, 6j, 9j,
Clebsch-Gordan, Racah as well as Gaunt coefficients exactly, all
evaluating to a rational number times the square root of a rational
number <a class="reference internal" href="#rasch03" id="id1"><span>[Rasch03]</span></a>.</p>
<p>Please see the description of the individual functions for further
details and examples.</p>
<section id="references">
<h2>References<a class="headerlink" href="#references" title="Permalink to this headline">¶</a></h2>
<dl class="citation">
<dt class="label" id="regge58"><span class="brackets">Regge58</span><span class="fn-backref">(<a href="#id3">1</a>,<a href="#id8">2</a>)</span></dt>
<dd><p>‘Symmetry Properties of Clebsch-Gordan Coefficients’,
T. Regge, Nuovo Cimento, Volume 10, pp. 544 (1958)</p>
</dd>
<dt class="label" id="regge59"><span class="brackets"><a class="fn-backref" href="#id11">Regge59</a></span></dt>
<dd><p>‘Symmetry Properties of Racah Coefficients’,
T. Regge, Nuovo Cimento, Volume 11, pp. 116 (1959)</p>
</dd>
<dt class="label" id="edmonds74"><span class="brackets">Edmonds74</span><span class="fn-backref">(<a href="#id2">1</a>,<a href="#id6">2</a>,<a href="#id9">3</a>,<a href="#id12">4</a>,<a href="#id14">5</a>,<a href="#id16">6</a>,<a href="#id17">7</a>,<a href="#id18">8</a>,<a href="#id19">9</a>,<a href="#id20">10</a>)</span></dt>
<dd><p>A. R. Edmonds. Angular momentum in quantum mechanics.
Investigations in physics, 4.; Investigations in physics, no. 4.
Princeton, N.J., Princeton University Press, 1957.</p>
</dd>
<dt class="label" id="rasch03"><span class="brackets">Rasch03</span><span class="fn-backref">(<a href="#id1">1</a>,<a href="#id5">2</a>,<a href="#id7">3</a>,<a href="#id10">4</a>,<a href="#id13">5</a>,<a href="#id15">6</a>)</span></dt>
<dd><p>J. Rasch and A. C. H. Yu, ‘Efficient Storage Scheme for
Pre-calculated Wigner 3j, 6j and Gaunt Coefficients’, SIAM
J. Sci. Comput. Volume 25, Issue 4, pp. 1416-1428 (2003)</p>
</dd>
<dt class="label" id="liberatodebrito82"><span class="brackets"><a class="fn-backref" href="#id4">Liberatodebrito82</a></span></dt>
<dd><p>‘FORTRAN program for the integral of three
spherical harmonics’, A. Liberato de Brito,
Comput. Phys. Commun., Volume 25, pp. 81-85 (1982)</p>
</dd>
</dl>
</section>
<section id="credits-and-copyright">
<h2>Credits and Copyright<a class="headerlink" href="#credits-and-copyright" title="Permalink to this headline">¶</a></h2>
<p>This code was taken from Sage with the permission of all authors:</p>
<p><a class="reference external" href="https://groups.google.com/forum/#!topic/sage-devel/M4NZdu-7O38">https://groups.google.com/forum/#!topic/sage-devel/M4NZdu-7O38</a></p>
</section>
<section id="authors">
<h2>Authors<a class="headerlink" href="#authors" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li><p>Jens Rasch (2009-03-24): initial version for Sage</p></li>
<li><p>Jens Rasch (2009-05-31): updated to sage-4.0</p></li>
<li><p>Oscar Gerardo Lazo Arjona (2017-06-18): added Wigner D matrices</p></li>
</ul>
<p>Copyright (C) 2008 Jens Rasch &lt;<a class="reference external" href="mailto:jyr2000&#37;&#52;&#48;gmail&#46;com">jyr2000<span>&#64;</span>gmail<span>&#46;</span>com</a>&gt;</p>
<dl class="py function">
<dt class="sig sig-object py" id="sympy.physics.wigner.clebsch_gordan">
<span class="sig-prename descclassname"><span class="pre">sympy.physics.wigner.</span></span><span class="sig-name descname"><span class="pre">clebsch_gordan</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">j_1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j_2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j_3</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">m_1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">m_2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">m_3</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/wigner.py#L234-L286"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.wigner.clebsch_gordan" title="Permalink to this definition">¶</a></dt>
<dd><p>Calculates the Clebsch-Gordan coefficient.
<span class="math notranslate nohighlight">\(\left\langle j_1 m_1 \; j_2 m_2 | j_3 m_3 \right\rangle\)</span>.</p>
<p>The reference for this function is <a class="reference internal" href="#edmonds74" id="id2"><span>[Edmonds74]</span></a>.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>j_1, j_2, j_3, m_1, m_2, m_3 :</strong></p>
<blockquote>
<div><p>Integer or half integer.</p>
</div></blockquote>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>Rational number times the square root of a rational number.</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy</span> <span class="kn">import</span> <span class="n">S</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.wigner</span> <span class="kn">import</span> <span class="n">clebsch_gordan</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">clebsch_gordan</span><span class="p">(</span><span class="n">S</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="n">S</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">S</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="n">S</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
<span class="go">1</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">clebsch_gordan</span><span class="p">(</span><span class="n">S</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="n">S</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">S</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="o">-</span><span class="n">S</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="go">sqrt(3)/2</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">clebsch_gordan</span><span class="p">(</span><span class="n">S</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="n">S</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="n">S</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="n">S</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
<span class="go">-sqrt(2)/2</span>
</pre></div>
</div>
<p class="rubric">Notes</p>
<p>The Clebsch-Gordan coefficient will be evaluated via its relation
to Wigner 3j symbols:</p>
<div class="math notranslate nohighlight">
\[\left\langle j_1 m_1 \; j_2 m_2 | j_3 m_3 \right\rangle
=(-1)^{j_1-j_2+m_3} \sqrt{2j_3+1}
\operatorname{Wigner3j}(j_1,j_2,j_3,m_1,m_2,-m_3)\]</div>
<p>See also the documentation on Wigner 3j symbols which exhibit much
higher symmetry relations than the Clebsch-Gordan coefficient.</p>
<p class="rubric">Authors</p>
<ul class="simple">
<li><p>Jens Rasch (2009-03-24): initial version</p></li>
</ul>
</dd></dl>

<dl class="py function">
<dt class="sig sig-object py" id="sympy.physics.wigner.dot_rot_grad_Ynm">
<span class="sig-prename descclassname"><span class="pre">sympy.physics.wigner.</span></span><span class="sig-name descname"><span class="pre">dot_rot_grad_Ynm</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">j</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">p</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">l</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">m</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">theta</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">phi</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/wigner.py#L754-L799"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.wigner.dot_rot_grad_Ynm" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns dot product of rotational gradients of spherical harmonics.</p>
<p class="rubric">Explanation</p>
<p>This function returns the right hand side of the following expression:</p>
<div class="math notranslate nohighlight">
\[\vec{R}Y{_j^{p}} \cdot \vec{R}Y{_l^{m}} = (-1)^{m+p}
\sum\limits_{k=|l-j|}^{l+j}Y{_k^{m+p}}  * \alpha_{l,m,j,p,k} *
\frac{1}{2} (k^2-j^2-l^2+k-j-l)\]</div>
<p class="rubric">Arguments</p>
<p>j, p, l, m …. indices in spherical harmonics (expressions or integers)
theta, phi …. angle arguments in spherical harmonics</p>
<p class="rubric">Example</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy</span> <span class="kn">import</span> <span class="n">symbols</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.wigner</span> <span class="kn">import</span> <span class="n">dot_rot_grad_Ynm</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">theta</span><span class="p">,</span> <span class="n">phi</span> <span class="o">=</span> <span class="n">symbols</span><span class="p">(</span><span class="s2">&quot;theta phi&quot;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">dot_rot_grad_Ynm</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">theta</span><span class="p">,</span> <span class="n">phi</span><span class="p">)</span><span class="o">.</span><span class="n">doit</span><span class="p">()</span>
<span class="go">3*sqrt(55)*Ynm(5, 2, theta, phi)/(11*sqrt(pi))</span>
</pre></div>
</div>
</dd></dl>

<dl class="py function">
<dt class="sig sig-object py" id="sympy.physics.wigner.gaunt">
<span class="sig-prename descclassname"><span class="pre">sympy.physics.wigner.</span></span><span class="sig-name descname"><span class="pre">gaunt</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">l_1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">l_2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">l_3</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">m_1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">m_2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">m_3</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/wigner.py#L587-L742"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.wigner.gaunt" title="Permalink to this definition">¶</a></dt>
<dd><p>Calculate the Gaunt coefficient.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>l_1, l_2, l_3, m_1, m_2, m_3 :</strong></p>
<blockquote>
<div><p>Integer.</p>
</div></blockquote>
<p><strong>prec - precision, default: ``None``.</strong></p>
<blockquote>
<div><p>Providing a precision can
drastically speed up the calculation.</p>
</div></blockquote>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>Rational number times the square root of a rational number</p>
<p>(if <code class="docutils literal notranslate"><span class="pre">prec=None</span></code>), or real number if a precision is given.</p>
</dd>
</dl>
<p class="rubric">Explanation</p>
<p>The Gaunt coefficient is defined as the integral over three
spherical harmonics:</p>
<div class="math notranslate nohighlight">
\[\begin{split}\begin{aligned}
\operatorname{Gaunt}(l_1,l_2,l_3,m_1,m_2,m_3)
&amp;=\int Y_{l_1,m_1}(\Omega)
 Y_{l_2,m_2}(\Omega) Y_{l_3,m_3}(\Omega) \,d\Omega \\
&amp;=\sqrt{\frac{(2l_1+1)(2l_2+1)(2l_3+1)}{4\pi}}
 \operatorname{Wigner3j}(l_1,l_2,l_3,0,0,0)
 \operatorname{Wigner3j}(l_1,l_2,l_3,m_1,m_2,m_3)
\end{aligned}\end{split}\]</div>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.wigner</span> <span class="kn">import</span> <span class="n">gaunt</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">gaunt</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
<span class="go">-1/(2*sqrt(pi))</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">gaunt</span><span class="p">(</span><span class="mi">1000</span><span class="p">,</span><span class="mi">1000</span><span class="p">,</span><span class="mi">1200</span><span class="p">,</span><span class="mi">9</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="o">-</span><span class="mi">12</span><span class="p">)</span><span class="o">.</span><span class="n">n</span><span class="p">(</span><span class="mi">64</span><span class="p">)</span>
<span class="go">0.00689500421922113448...</span>
</pre></div>
</div>
<p>It is an error to use non-integer values for <span class="math notranslate nohighlight">\(l\)</span> and <span class="math notranslate nohighlight">\(m\)</span>:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">gaunt</span><span class="p">(</span><span class="mf">1.2</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mf">1.2</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
<span class="n">Traceback</span> <span class="p">(</span><span class="n">most</span> <span class="n">recent</span> <span class="n">call</span> <span class="n">last</span><span class="p">):</span>
<span class="o">...</span>
<span class="ne">ValueError</span><span class="p">:</span> <span class="n">l</span> <span class="n">values</span> <span class="n">must</span> <span class="n">be</span> <span class="n">integer</span>
<span class="n">sage</span><span class="p">:</span> <span class="n">gaunt</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mf">1.1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="o">-</span><span class="mf">1.1</span><span class="p">)</span>
<span class="n">Traceback</span> <span class="p">(</span><span class="n">most</span> <span class="n">recent</span> <span class="n">call</span> <span class="n">last</span><span class="p">):</span>
<span class="o">...</span>
<span class="ne">ValueError</span><span class="p">:</span> <span class="n">m</span> <span class="n">values</span> <span class="n">must</span> <span class="n">be</span> <span class="n">integer</span>
</pre></div>
</div>
<p class="rubric">Notes</p>
<p>The Gaunt coefficient obeys the following symmetry rules:</p>
<ul>
<li><p>invariant under any permutation of the columns</p>
<div class="math notranslate nohighlight">
\[\begin{split}\begin{aligned}
  Y(l_1,l_2,l_3,m_1,m_2,m_3)
  &amp;=Y(l_3,l_1,l_2,m_3,m_1,m_2) \\
  &amp;=Y(l_2,l_3,l_1,m_2,m_3,m_1) \\
  &amp;=Y(l_3,l_2,l_1,m_3,m_2,m_1) \\
  &amp;=Y(l_1,l_3,l_2,m_1,m_3,m_2) \\
  &amp;=Y(l_2,l_1,l_3,m_2,m_1,m_3)
\end{aligned}\end{split}\]</div>
</li>
<li><p>invariant under space inflection, i.e.</p>
<div class="math notranslate nohighlight">
\[Y(l_1,l_2,l_3,m_1,m_2,m_3)
=Y(l_1,l_2,l_3,-m_1,-m_2,-m_3)\]</div>
</li>
<li><p>symmetric with respect to the 72 Regge symmetries as inherited
for the <span class="math notranslate nohighlight">\(3j\)</span> symbols <a class="reference internal" href="#regge58" id="id3"><span>[Regge58]</span></a></p></li>
<li><p>zero for <span class="math notranslate nohighlight">\(l_1\)</span>, <span class="math notranslate nohighlight">\(l_2\)</span>, <span class="math notranslate nohighlight">\(l_3\)</span> not fulfilling triangle relation</p></li>
<li><p>zero for violating any one of the conditions: <span class="math notranslate nohighlight">\(l_1 \ge |m_1|\)</span>,
<span class="math notranslate nohighlight">\(l_2 \ge |m_2|\)</span>, <span class="math notranslate nohighlight">\(l_3 \ge |m_3|\)</span></p></li>
<li><p>non-zero only for an even sum of the <span class="math notranslate nohighlight">\(l_i\)</span>, i.e.
<span class="math notranslate nohighlight">\(L = l_1 + l_2 + l_3 = 2n\)</span> for <span class="math notranslate nohighlight">\(n\)</span> in <span class="math notranslate nohighlight">\(\mathbb{N}\)</span></p></li>
</ul>
<p class="rubric">Algorithms</p>
<p>This function uses the algorithm of <a class="reference internal" href="#liberatodebrito82" id="id4"><span>[Liberatodebrito82]</span></a> to
calculate the value of the Gaunt coefficient exactly. Note that
the formula contains alternating sums over large factorials and is
therefore unsuitable for finite precision arithmetic and only
useful for a computer algebra system <a class="reference internal" href="#rasch03" id="id5"><span>[Rasch03]</span></a>.</p>
<p class="rubric">Authors</p>
<p>Jens Rasch (2009-03-24): initial version for Sage.</p>
</dd></dl>

<dl class="py function">
<dt class="sig sig-object py" id="sympy.physics.wigner.racah">
<span class="sig-prename descclassname"><span class="pre">sympy.physics.wigner.</span></span><span class="sig-name descname"><span class="pre">racah</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">aa</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bb</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cc</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dd</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ee</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ff</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/wigner.py#L347-L425"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.wigner.racah" title="Permalink to this definition">¶</a></dt>
<dd><p>Calculate the Racah symbol <span class="math notranslate nohighlight">\(W(a,b,c,d;e,f)\)</span>.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>a, …, f :</strong></p>
<blockquote>
<div><p>Integer or half integer.</p>
</div></blockquote>
<p><strong>prec :</strong></p>
<blockquote>
<div><p>Precision, default: <code class="docutils literal notranslate"><span class="pre">None</span></code>. Providing a precision can
drastically speed up the calculation.</p>
</div></blockquote>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>Rational number times the square root of a rational number</p>
<p>(if <code class="docutils literal notranslate"><span class="pre">prec=None</span></code>), or real number if a precision is given.</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.wigner</span> <span class="kn">import</span> <span class="n">racah</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">racah</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span>
<span class="go">-1/14</span>
</pre></div>
</div>
<p class="rubric">Notes</p>
<p>The Racah symbol is related to the Wigner 6j symbol:</p>
<div class="math notranslate nohighlight">
\[\operatorname{Wigner6j}(j_1,j_2,j_3,j_4,j_5,j_6)
=(-1)^{j_1+j_2+j_4+j_5} W(j_1,j_2,j_5,j_4,j_3,j_6)\]</div>
<p>Please see the 6j symbol for its much richer symmetries and for
additional properties.</p>
<p class="rubric">Algorithm</p>
<p>This function uses the algorithm of <a class="reference internal" href="#edmonds74" id="id6"><span>[Edmonds74]</span></a> to calculate the
value of the 6j symbol exactly. Note that the formula contains
alternating sums over large factorials and is therefore unsuitable
for finite precision arithmetic and only useful for a computer
algebra system <a class="reference internal" href="#rasch03" id="id7"><span>[Rasch03]</span></a>.</p>
<p class="rubric">Authors</p>
<ul class="simple">
<li><p>Jens Rasch (2009-03-24): initial version</p></li>
</ul>
</dd></dl>

<dl class="py function">
<dt class="sig sig-object py" id="sympy.physics.wigner.wigner_3j">
<span class="sig-prename descclassname"><span class="pre">sympy.physics.wigner.</span></span><span class="sig-name descname"><span class="pre">wigner_3j</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">j_1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j_2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j_3</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">m_1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">m_2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">m_3</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/wigner.py#L91-L231"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.wigner.wigner_3j" title="Permalink to this definition">¶</a></dt>
<dd><p>Calculate the Wigner 3j symbol <span class="math notranslate nohighlight">\(\operatorname{Wigner3j}(j_1,j_2,j_3,m_1,m_2,m_3)\)</span>.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>j_1, j_2, j_3, m_1, m_2, m_3 :</strong></p>
<blockquote>
<div><p>Integer or half integer.</p>
</div></blockquote>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>Rational number times the square root of a rational number.</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.wigner</span> <span class="kn">import</span> <span class="n">wigner_3j</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">wigner_3j</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
<span class="go">sqrt(715)/143</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">wigner_3j</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="go">0</span>
</pre></div>
</div>
<p>It is an error to have arguments that are not integer or half
integer values:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">wigner_3j</span><span class="p">(</span><span class="mf">2.1</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
<span class="n">Traceback</span> <span class="p">(</span><span class="n">most</span> <span class="n">recent</span> <span class="n">call</span> <span class="n">last</span><span class="p">):</span>
<span class="o">...</span>
<span class="ne">ValueError</span><span class="p">:</span> <span class="n">j</span> <span class="n">values</span> <span class="n">must</span> <span class="n">be</span> <span class="n">integer</span> <span class="ow">or</span> <span class="n">half</span> <span class="n">integer</span>
<span class="n">sage</span><span class="p">:</span> <span class="n">wigner_3j</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mf">1.1</span><span class="p">)</span>
<span class="n">Traceback</span> <span class="p">(</span><span class="n">most</span> <span class="n">recent</span> <span class="n">call</span> <span class="n">last</span><span class="p">):</span>
<span class="o">...</span>
<span class="ne">ValueError</span><span class="p">:</span> <span class="n">m</span> <span class="n">values</span> <span class="n">must</span> <span class="n">be</span> <span class="n">integer</span> <span class="ow">or</span> <span class="n">half</span> <span class="n">integer</span>
</pre></div>
</div>
<p class="rubric">Notes</p>
<p>The Wigner 3j symbol obeys the following symmetry rules:</p>
<ul>
<li><p>invariant under any permutation of the columns (with the
exception of a sign change where <span class="math notranslate nohighlight">\(J:=j_1+j_2+j_3\)</span>):</p>
<div class="math notranslate nohighlight">
\[\begin{split}\begin{aligned}
\operatorname{Wigner3j}(j_1,j_2,j_3,m_1,m_2,m_3)
 &amp;=\operatorname{Wigner3j}(j_3,j_1,j_2,m_3,m_1,m_2) \\
 &amp;=\operatorname{Wigner3j}(j_2,j_3,j_1,m_2,m_3,m_1) \\
 &amp;=(-1)^J \operatorname{Wigner3j}(j_3,j_2,j_1,m_3,m_2,m_1) \\
 &amp;=(-1)^J \operatorname{Wigner3j}(j_1,j_3,j_2,m_1,m_3,m_2) \\
 &amp;=(-1)^J \operatorname{Wigner3j}(j_2,j_1,j_3,m_2,m_1,m_3)
\end{aligned}\end{split}\]</div>
</li>
<li><p>invariant under space inflection, i.e.</p>
<div class="math notranslate nohighlight">
\[\operatorname{Wigner3j}(j_1,j_2,j_3,m_1,m_2,m_3)
=(-1)^J \operatorname{Wigner3j}(j_1,j_2,j_3,-m_1,-m_2,-m_3)\]</div>
</li>
<li><p>symmetric with respect to the 72 additional symmetries based on
the work by <a class="reference internal" href="#regge58" id="id8"><span>[Regge58]</span></a></p></li>
<li><p>zero for <span class="math notranslate nohighlight">\(j_1\)</span>, <span class="math notranslate nohighlight">\(j_2\)</span>, <span class="math notranslate nohighlight">\(j_3\)</span> not fulfilling triangle relation</p></li>
<li><p>zero for <span class="math notranslate nohighlight">\(m_1 + m_2 + m_3 \neq 0\)</span></p></li>
<li><p>zero for violating any one of the conditions
<span class="math notranslate nohighlight">\(j_1 \ge |m_1|\)</span>,  <span class="math notranslate nohighlight">\(j_2 \ge |m_2|\)</span>,  <span class="math notranslate nohighlight">\(j_3 \ge |m_3|\)</span></p></li>
</ul>
<p class="rubric">Algorithm</p>
<p>This function uses the algorithm of <a class="reference internal" href="#edmonds74" id="id9"><span>[Edmonds74]</span></a> to calculate the
value of the 3j symbol exactly. Note that the formula contains
alternating sums over large factorials and is therefore unsuitable
for finite precision arithmetic and only useful for a computer
algebra system <a class="reference internal" href="#rasch03" id="id10"><span>[Rasch03]</span></a>.</p>
<p class="rubric">Authors</p>
<ul class="simple">
<li><p>Jens Rasch (2009-03-24): initial version</p></li>
</ul>
</dd></dl>

<dl class="py function">
<dt class="sig sig-object py" id="sympy.physics.wigner.wigner_6j">
<span class="sig-prename descclassname"><span class="pre">sympy.physics.wigner.</span></span><span class="sig-name descname"><span class="pre">wigner_6j</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">j_1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j_2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j_3</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j_4</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j_5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j_6</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/wigner.py#L428-L522"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.wigner.wigner_6j" title="Permalink to this definition">¶</a></dt>
<dd><p>Calculate the Wigner 6j symbol <span class="math notranslate nohighlight">\(\operatorname{Wigner6j}(j_1,j_2,j_3,j_4,j_5,j_6)\)</span>.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>j_1, …, j_6 :</strong></p>
<blockquote>
<div><p>Integer or half integer.</p>
</div></blockquote>
<p><strong>prec :</strong></p>
<blockquote>
<div><p>Precision, default: <code class="docutils literal notranslate"><span class="pre">None</span></code>. Providing a precision can
drastically speed up the calculation.</p>
</div></blockquote>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>Rational number times the square root of a rational number</p>
<p>(if <code class="docutils literal notranslate"><span class="pre">prec=None</span></code>), or real number if a precision is given.</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.wigner</span> <span class="kn">import</span> <span class="n">wigner_6j</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">wigner_6j</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span>
<span class="go">-1/14</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">wigner_6j</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">5</span><span class="p">)</span>
<span class="go">1/52</span>
</pre></div>
</div>
<p>It is an error to have arguments that are not integer or half
integer values or do not fulfill the triangle relation:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">wigner_6j</span><span class="p">(</span><span class="mf">2.5</span><span class="p">,</span><span class="mf">2.5</span><span class="p">,</span><span class="mf">2.5</span><span class="p">,</span><span class="mf">2.5</span><span class="p">,</span><span class="mf">2.5</span><span class="p">,</span><span class="mf">2.5</span><span class="p">)</span>
<span class="n">Traceback</span> <span class="p">(</span><span class="n">most</span> <span class="n">recent</span> <span class="n">call</span> <span class="n">last</span><span class="p">):</span>
<span class="o">...</span>
<span class="ne">ValueError</span><span class="p">:</span> <span class="n">j</span> <span class="n">values</span> <span class="n">must</span> <span class="n">be</span> <span class="n">integer</span> <span class="ow">or</span> <span class="n">half</span> <span class="n">integer</span> <span class="ow">and</span> <span class="n">fulfill</span> <span class="n">the</span> <span class="n">triangle</span> <span class="n">relation</span>
<span class="n">sage</span><span class="p">:</span> <span class="n">wigner_6j</span><span class="p">(</span><span class="mf">0.5</span><span class="p">,</span><span class="mf">0.5</span><span class="p">,</span><span class="mf">1.1</span><span class="p">,</span><span class="mf">0.5</span><span class="p">,</span><span class="mf">0.5</span><span class="p">,</span><span class="mf">1.1</span><span class="p">)</span>
<span class="n">Traceback</span> <span class="p">(</span><span class="n">most</span> <span class="n">recent</span> <span class="n">call</span> <span class="n">last</span><span class="p">):</span>
<span class="o">...</span>
<span class="ne">ValueError</span><span class="p">:</span> <span class="n">j</span> <span class="n">values</span> <span class="n">must</span> <span class="n">be</span> <span class="n">integer</span> <span class="ow">or</span> <span class="n">half</span> <span class="n">integer</span> <span class="ow">and</span> <span class="n">fulfill</span> <span class="n">the</span> <span class="n">triangle</span> <span class="n">relation</span>
</pre></div>
</div>
<p class="rubric">Notes</p>
<p>The Wigner 6j symbol is related to the Racah symbol but exhibits
more symmetries as detailed below.</p>
<div class="math notranslate nohighlight">
\[\operatorname{Wigner6j}(j_1,j_2,j_3,j_4,j_5,j_6)
 =(-1)^{j_1+j_2+j_4+j_5} W(j_1,j_2,j_5,j_4,j_3,j_6)\]</div>
<p>The Wigner 6j symbol obeys the following symmetry rules:</p>
<ul>
<li><p>Wigner 6j symbols are left invariant under any permutation of
the columns:</p>
<div class="math notranslate nohighlight">
\[\begin{split}\begin{aligned}
\operatorname{Wigner6j}(j_1,j_2,j_3,j_4,j_5,j_6)
 &amp;=\operatorname{Wigner6j}(j_3,j_1,j_2,j_6,j_4,j_5) \\
 &amp;=\operatorname{Wigner6j}(j_2,j_3,j_1,j_5,j_6,j_4) \\
 &amp;=\operatorname{Wigner6j}(j_3,j_2,j_1,j_6,j_5,j_4) \\
 &amp;=\operatorname{Wigner6j}(j_1,j_3,j_2,j_4,j_6,j_5) \\
 &amp;=\operatorname{Wigner6j}(j_2,j_1,j_3,j_5,j_4,j_6)
\end{aligned}\end{split}\]</div>
</li>
<li><p>They are invariant under the exchange of the upper and lower
arguments in each of any two columns, i.e.</p>
<div class="math notranslate nohighlight">
\[\operatorname{Wigner6j}(j_1,j_2,j_3,j_4,j_5,j_6)
 =\operatorname{Wigner6j}(j_1,j_5,j_6,j_4,j_2,j_3)
 =\operatorname{Wigner6j}(j_4,j_2,j_6,j_1,j_5,j_3)
 =\operatorname{Wigner6j}(j_4,j_5,j_3,j_1,j_2,j_6)\]</div>
</li>
<li><p>additional 6 symmetries <a class="reference internal" href="#regge59" id="id11"><span>[Regge59]</span></a> giving rise to 144 symmetries
in total</p></li>
<li><p>only non-zero if any triple of <span class="math notranslate nohighlight">\(j\)</span>’s fulfill a triangle relation</p></li>
</ul>
<p class="rubric">Algorithm</p>
<p>This function uses the algorithm of <a class="reference internal" href="#edmonds74" id="id12"><span>[Edmonds74]</span></a> to calculate the
value of the 6j symbol exactly. Note that the formula contains
alternating sums over large factorials and is therefore unsuitable
for finite precision arithmetic and only useful for a computer
algebra system <a class="reference internal" href="#rasch03" id="id13"><span>[Rasch03]</span></a>.</p>
</dd></dl>

<dl class="py function">
<dt class="sig sig-object py" id="sympy.physics.wigner.wigner_9j">
<span class="sig-prename descclassname"><span class="pre">sympy.physics.wigner.</span></span><span class="sig-name descname"><span class="pre">wigner_9j</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">j_1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j_2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j_3</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j_4</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j_5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j_6</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j_7</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j_8</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">j_9</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prec</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/wigner.py#L525-L584"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.wigner.wigner_9j" title="Permalink to this definition">¶</a></dt>
<dd><p>Calculate the Wigner 9j symbol
<span class="math notranslate nohighlight">\(\operatorname{Wigner9j}(j_1,j_2,j_3,j_4,j_5,j_6,j_7,j_8,j_9)\)</span>.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>j_1, …, j_9 :</strong></p>
<blockquote>
<div><p>Integer or half integer.</p>
</div></blockquote>
<p><strong>prec</strong> : precision, default</p>
<blockquote>
<div><p><code class="docutils literal notranslate"><span class="pre">None</span></code>. Providing a precision can
drastically speed up the calculation.</p>
</div></blockquote>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>Rational number times the square root of a rational number</p>
<p>(if <code class="docutils literal notranslate"><span class="pre">prec=None</span></code>), or real number if a precision is given.</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.wigner</span> <span class="kn">import</span> <span class="n">wigner_9j</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">wigner_9j</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span> <span class="p">,</span><span class="n">prec</span><span class="o">=</span><span class="mi">64</span><span class="p">)</span> <span class="c1"># ==1/18</span>
<span class="go">0.05555555...</span>
</pre></div>
</div>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">wigner_9j</span><span class="p">(</span><span class="mi">1</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span> <span class="p">,</span><span class="n">prec</span><span class="o">=</span><span class="mi">64</span><span class="p">)</span> <span class="c1"># ==1/6</span>
<span class="go">0.1666666...</span>
</pre></div>
</div>
<p>It is an error to have arguments that are not integer or half
integer values or do not fulfill the triangle relation:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sage</span><span class="p">:</span> <span class="n">wigner_9j</span><span class="p">(</span><span class="mf">0.5</span><span class="p">,</span><span class="mf">0.5</span><span class="p">,</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span><span class="mf">0.5</span><span class="p">,</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span><span class="mf">0.5</span><span class="p">,</span><span class="mf">0.5</span><span class="p">,</span><span class="n">prec</span><span class="o">=</span><span class="mi">64</span><span class="p">)</span>
<span class="n">Traceback</span> <span class="p">(</span><span class="n">most</span> <span class="n">recent</span> <span class="n">call</span> <span class="n">last</span><span class="p">):</span>
<span class="o">...</span>
<span class="ne">ValueError</span><span class="p">:</span> <span class="n">j</span> <span class="n">values</span> <span class="n">must</span> <span class="n">be</span> <span class="n">integer</span> <span class="ow">or</span> <span class="n">half</span> <span class="n">integer</span> <span class="ow">and</span> <span class="n">fulfill</span> <span class="n">the</span> <span class="n">triangle</span> <span class="n">relation</span>
<span class="n">sage</span><span class="p">:</span> <span class="n">wigner_9j</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mf">1.5</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mf">2.5</span><span class="p">,</span><span class="n">prec</span><span class="o">=</span><span class="mi">64</span><span class="p">)</span>
<span class="n">Traceback</span> <span class="p">(</span><span class="n">most</span> <span class="n">recent</span> <span class="n">call</span> <span class="n">last</span><span class="p">):</span>
<span class="o">...</span>
<span class="ne">ValueError</span><span class="p">:</span> <span class="n">j</span> <span class="n">values</span> <span class="n">must</span> <span class="n">be</span> <span class="n">integer</span> <span class="ow">or</span> <span class="n">half</span> <span class="n">integer</span> <span class="ow">and</span> <span class="n">fulfill</span> <span class="n">the</span> <span class="n">triangle</span> <span class="n">relation</span>
</pre></div>
</div>
<p class="rubric">Algorithm</p>
<p>This function uses the algorithm of <a class="reference internal" href="#edmonds74" id="id14"><span>[Edmonds74]</span></a> to calculate the
value of the 3j symbol exactly. Note that the formula contains
alternating sums over large factorials and is therefore unsuitable
for finite precision arithmetic and only useful for a computer
algebra system <a class="reference internal" href="#rasch03" id="id15"><span>[Rasch03]</span></a>.</p>
</dd></dl>

<dl class="py function">
<dt class="sig sig-object py" id="sympy.physics.wigner.wigner_d">
<span class="sig-prename descclassname"><span class="pre">sympy.physics.wigner.</span></span><span class="sig-name descname"><span class="pre">wigner_d</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">J</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">alpha</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">beta</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gamma</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/wigner.py#L939-L994"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.wigner.wigner_d" title="Permalink to this definition">¶</a></dt>
<dd><p>Return the Wigner D matrix for angular momentum J.</p>
<dl class="field-list">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>A matrix representing the corresponding Euler angle rotation( in the basis</p>
<p>of eigenvectors of <span class="math notranslate nohighlight">\(J_z\)</span>).</p>
<div class="math notranslate nohighlight">
\[\mathcal{D}_{\alpha \beta \gamma} =
\exp\big( \frac{i\alpha}{\hbar} J_z\big)
\exp\big( \frac{i\beta}{\hbar} J_y\big)
\exp\big( \frac{i\gamma}{\hbar} J_z\big)\]</div>
<p>The components are calculated using the general form <a class="reference internal" href="#edmonds74" id="id16"><span>[Edmonds74]</span></a>,</p>
<p>equation 4.1.12.</p>
</dd>
</dl>
<p class="rubric">Explanation</p>
<dl class="simple">
<dt>J :</dt><dd><p>An integer, half-integer, or sympy symbol for the total angular
momentum of the angular momentum space being rotated.</p>
</dd>
<dt>alpha, beta, gamma - Real numbers representing the Euler.</dt><dd><p>Angles of rotation about the so-called vertical, line of nodes, and
figure axes. See <a class="reference internal" href="#edmonds74" id="id17"><span>[Edmonds74]</span></a>.</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<p>The simplest possible example:</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.wigner</span> <span class="kn">import</span> <span class="n">wigner_d</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy</span> <span class="kn">import</span> <span class="n">Integer</span><span class="p">,</span> <span class="n">symbols</span><span class="p">,</span> <span class="n">pprint</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">half</span> <span class="o">=</span> <span class="mi">1</span><span class="o">/</span><span class="n">Integer</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">alpha</span><span class="p">,</span> <span class="n">beta</span><span class="p">,</span> <span class="n">gamma</span> <span class="o">=</span> <span class="n">symbols</span><span class="p">(</span><span class="s2">&quot;alpha, beta, gamma&quot;</span><span class="p">,</span> <span class="n">real</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">pprint</span><span class="p">(</span><span class="n">wigner_d</span><span class="p">(</span><span class="n">half</span><span class="p">,</span> <span class="n">alpha</span><span class="p">,</span> <span class="n">beta</span><span class="p">,</span> <span class="n">gamma</span><span class="p">),</span> <span class="n">use_unicode</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="go">⎡  ⅈ⋅α  ⅈ⋅γ             ⅈ⋅α  -ⅈ⋅γ         ⎤</span>
<span class="go">⎢  ───  ───             ───  ─────        ⎥</span>
<span class="go">⎢   2    2     ⎛β⎞       2     2      ⎛β⎞ ⎥</span>
<span class="go">⎢ ℯ   ⋅ℯ   ⋅cos⎜─⎟     ℯ   ⋅ℯ     ⋅sin⎜─⎟ ⎥</span>
<span class="go">⎢              ⎝2⎠                    ⎝2⎠ ⎥</span>
<span class="go">⎢                                         ⎥</span>
<span class="go">⎢  -ⅈ⋅α   ⅈ⋅γ          -ⅈ⋅α   -ⅈ⋅γ        ⎥</span>
<span class="go">⎢  ─────  ───          ─────  ─────       ⎥</span>
<span class="go">⎢    2     2     ⎛β⎞     2      2      ⎛β⎞⎥</span>
<span class="go">⎢-ℯ     ⋅ℯ   ⋅sin⎜─⎟  ℯ     ⋅ℯ     ⋅cos⎜─⎟⎥</span>
<span class="go">⎣                ⎝2⎠                   ⎝2⎠⎦</span>
</pre></div>
</div>
</dd></dl>

<dl class="py function">
<dt class="sig sig-object py" id="sympy.physics.wigner.wigner_d_small">
<span class="sig-prename descclassname"><span class="pre">sympy.physics.wigner.</span></span><span class="sig-name descname"><span class="pre">wigner_d_small</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">J</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">beta</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/sympy/sympy/blob/00d6469eafdd4aac346a0b598184c15f2560dbe5/sympy/physics/wigner.py#L802-L936"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#sympy.physics.wigner.wigner_d_small" title="Permalink to this definition">¶</a></dt>
<dd><p>Return the small Wigner d matrix for angular momentum J.</p>
<dl class="field-list">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>A matrix representing the corresponding Euler angle rotation( in the basis</p>
<p>of eigenvectors of <span class="math notranslate nohighlight">\(J_z\)</span>).</p>
<div class="math notranslate nohighlight">
\[\mathcal{d}_{\beta} = \exp\big( \frac{i\beta}{\hbar} J_y\big)\]</div>
<p>The components are calculated using the general form <a class="reference internal" href="#edmonds74" id="id18"><span>[Edmonds74]</span></a>,</p>
<p>equation 4.1.15.</p>
</dd>
</dl>
<p class="rubric">Explanation</p>
<dl class="simple">
<dt>J<span class="classifier">An integer, half-integer, or sympy symbol for the total angular</span></dt><dd><p>momentum of the angular momentum space being rotated.</p>
</dd>
<dt>beta<span class="classifier">A real number representing the Euler angle of rotation about</span></dt><dd><p>the so-called line of nodes. See <a class="reference internal" href="#edmonds74" id="id19"><span>[Edmonds74]</span></a>.</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy</span> <span class="kn">import</span> <span class="n">Integer</span><span class="p">,</span> <span class="n">symbols</span><span class="p">,</span> <span class="n">pi</span><span class="p">,</span> <span class="n">pprint</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sympy.physics.wigner</span> <span class="kn">import</span> <span class="n">wigner_d_small</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">half</span> <span class="o">=</span> <span class="mi">1</span><span class="o">/</span><span class="n">Integer</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">beta</span> <span class="o">=</span> <span class="n">symbols</span><span class="p">(</span><span class="s2">&quot;beta&quot;</span><span class="p">,</span> <span class="n">real</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">pprint</span><span class="p">(</span><span class="n">wigner_d_small</span><span class="p">(</span><span class="n">half</span><span class="p">,</span> <span class="n">beta</span><span class="p">),</span> <span class="n">use_unicode</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="go">⎡   ⎛β⎞      ⎛β⎞⎤</span>
<span class="go">⎢cos⎜─⎟   sin⎜─⎟⎥</span>
<span class="go">⎢   ⎝2⎠      ⎝2⎠⎥</span>
<span class="go">⎢               ⎥</span>
<span class="go">⎢    ⎛β⎞     ⎛β⎞⎥</span>
<span class="go">⎢-sin⎜─⎟  cos⎜─⎟⎥</span>
<span class="go">⎣    ⎝2⎠     ⎝2⎠⎦</span>
</pre></div>
</div>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">pprint</span><span class="p">(</span><span class="n">wigner_d_small</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">half</span><span class="p">,</span> <span class="n">beta</span><span class="p">),</span> <span class="n">use_unicode</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="go">⎡        2⎛β⎞              ⎛β⎞    ⎛β⎞           2⎛β⎞     ⎤</span>
<span class="go">⎢     cos ⎜─⎟        √2⋅sin⎜─⎟⋅cos⎜─⎟        sin ⎜─⎟     ⎥</span>
<span class="go">⎢         ⎝2⎠              ⎝2⎠    ⎝2⎠            ⎝2⎠     ⎥</span>
<span class="go">⎢                                                        ⎥</span>
<span class="go">⎢       ⎛β⎞    ⎛β⎞       2⎛β⎞      2⎛β⎞        ⎛β⎞    ⎛β⎞⎥</span>
<span class="go">⎢-√2⋅sin⎜─⎟⋅cos⎜─⎟  - sin ⎜─⎟ + cos ⎜─⎟  √2⋅sin⎜─⎟⋅cos⎜─⎟⎥</span>
<span class="go">⎢       ⎝2⎠    ⎝2⎠        ⎝2⎠       ⎝2⎠        ⎝2⎠    ⎝2⎠⎥</span>
<span class="go">⎢                                                        ⎥</span>
<span class="go">⎢        2⎛β⎞               ⎛β⎞    ⎛β⎞          2⎛β⎞     ⎥</span>
<span class="go">⎢     sin ⎜─⎟        -√2⋅sin⎜─⎟⋅cos⎜─⎟       cos ⎜─⎟     ⎥</span>
<span class="go">⎣         ⎝2⎠               ⎝2⎠    ⎝2⎠           ⎝2⎠     ⎦</span>
</pre></div>
</div>
<p>From table 4 in <a class="reference internal" href="#edmonds74" id="id20"><span>[Edmonds74]</span></a></p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">pprint</span><span class="p">(</span><span class="n">wigner_d_small</span><span class="p">(</span><span class="n">half</span><span class="p">,</span> <span class="n">beta</span><span class="p">)</span><span class="o">.</span><span class="n">subs</span><span class="p">({</span><span class="n">beta</span><span class="p">:</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">}),</span> <span class="n">use_unicode</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="go">⎡ √2   √2⎤</span>
<span class="go">⎢ ──   ──⎥</span>
<span class="go">⎢ 2    2 ⎥</span>
<span class="go">⎢        ⎥</span>
<span class="go">⎢-√2   √2⎥</span>
<span class="go">⎢────  ──⎥</span>
<span class="go">⎣ 2    2 ⎦</span>
</pre></div>
</div>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">pprint</span><span class="p">(</span><span class="n">wigner_d_small</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">half</span><span class="p">,</span> <span class="n">beta</span><span class="p">)</span><span class="o">.</span><span class="n">subs</span><span class="p">({</span><span class="n">beta</span><span class="p">:</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">}),</span>
<span class="gp">... </span><span class="n">use_unicode</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="go">⎡       √2      ⎤</span>
<span class="go">⎢1/2    ──   1/2⎥</span>
<span class="go">⎢       2       ⎥</span>
<span class="go">⎢               ⎥</span>
<span class="go">⎢-√2         √2 ⎥</span>
<span class="go">⎢────   0    ── ⎥</span>
<span class="go">⎢ 2          2  ⎥</span>
<span class="go">⎢               ⎥</span>
<span class="go">⎢      -√2      ⎥</span>
<span class="go">⎢1/2   ────  1/2⎥</span>
<span class="go">⎣       2       ⎦</span>
</pre></div>
</div>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">pprint</span><span class="p">(</span><span class="n">wigner_d_small</span><span class="p">(</span><span class="mi">3</span><span class="o">*</span><span class="n">half</span><span class="p">,</span> <span class="n">beta</span><span class="p">)</span><span class="o">.</span><span class="n">subs</span><span class="p">({</span><span class="n">beta</span><span class="p">:</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">}),</span>
<span class="gp">... </span><span class="n">use_unicode</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="go">⎡ √2    √6    √6   √2⎤</span>
<span class="go">⎢ ──    ──    ──   ──⎥</span>
<span class="go">⎢ 4     4     4    4 ⎥</span>
<span class="go">⎢                    ⎥</span>
<span class="go">⎢-√6   -√2    √2   √6⎥</span>
<span class="go">⎢────  ────   ──   ──⎥</span>
<span class="go">⎢ 4     4     4    4 ⎥</span>
<span class="go">⎢                    ⎥</span>
<span class="go">⎢ √6   -√2   -√2   √6⎥</span>
<span class="go">⎢ ──   ────  ────  ──⎥</span>
<span class="go">⎢ 4     4     4    4 ⎥</span>
<span class="go">⎢                    ⎥</span>
<span class="go">⎢-√2    √6   -√6   √2⎥</span>
<span class="go">⎢────   ──   ────  ──⎥</span>
<span class="go">⎣ 4     4     4    4 ⎦</span>
</pre></div>
</div>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">pprint</span><span class="p">(</span><span class="n">wigner_d_small</span><span class="p">(</span><span class="mi">4</span><span class="o">*</span><span class="n">half</span><span class="p">,</span> <span class="n">beta</span><span class="p">)</span><span class="o">.</span><span class="n">subs</span><span class="p">({</span><span class="n">beta</span><span class="p">:</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">}),</span>
<span class="gp">... </span><span class="n">use_unicode</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="go">⎡             √6            ⎤</span>
<span class="go">⎢1/4   1/2    ──   1/2   1/4⎥</span>
<span class="go">⎢             4             ⎥</span>
<span class="go">⎢                           ⎥</span>
<span class="go">⎢-1/2  -1/2   0    1/2   1/2⎥</span>
<span class="go">⎢                           ⎥</span>
<span class="go">⎢ √6                     √6 ⎥</span>
<span class="go">⎢ ──    0    -1/2   0    ── ⎥</span>
<span class="go">⎢ 4                      4  ⎥</span>
<span class="go">⎢                           ⎥</span>
<span class="go">⎢-1/2  1/2    0    -1/2  1/2⎥</span>
<span class="go">⎢                           ⎥</span>
<span class="go">⎢             √6            ⎥</span>
<span class="go">⎢1/4   -1/2   ──   -1/2  1/4⎥</span>
<span class="go">⎣             4             ⎦</span>
</pre></div>
</div>
</dd></dl>

</section>
</section>


            <div class="clearer"></div>
          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
            <p class="logo"><a href="../../index.html">
              <img class="logo" src="../../_static/sympylogo.png" alt="Logo"/>
            </a></p>
  <h3><a href="../../index.html">Table of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Wigner Symbols</a><ul>
<li><a class="reference internal" href="#references">References</a></li>
<li><a class="reference internal" href="#credits-and-copyright">Credits and Copyright</a></li>
<li><a class="reference internal" href="#authors">Authors</a></li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="secondquant.html"
                        title="previous chapter">Second Quantization</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="units/index.html"
                        title="next chapter">Unit systems</a></p>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../../_sources/modules/physics/wigner.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
<div id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="https://docs.sympy.org/latest/search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>
    </div>
</div>
<script>$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="../../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="units/index.html" title="Unit systems"
             >next</a> |</li>
        <li class="right" >
          <a href="secondquant.html" title="Second Quantization"
             >previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../../index.html">SymPy 1.9 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="../index.html" >SymPy Modules Reference</a> &#187;</li>
          <li class="nav-item nav-item-2"><a href="index.html" >Physics</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="#">Wigner Symbols</a></li> 
      </ul>
    </div>
    <div class="footer" role="contentinfo">
        &#169; Copyright 2021 SymPy Development Team.
      Last updated on Sep 30, 2021.
      Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 4.1.2.
    </div>
  </body>

<!-- Mirrored from docs.sympy.org/latest/modules/physics/wigner.html by HTTrack Website Copier/3.x [XR&CO'2014], Sat, 15 Jan 2022 03:27:52 GMT -->
</html>